package org.hfy.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.hfy.dto.warehouse.InboundQueryDTO;
import org.hfy.entity.Inbound;
import org.hfy.entity.QuotationItem;

import java.util.List;

/**
 * 入库管理Mapper接口
 * 
 * @author hfy
 * @version 1.0
 */
@Mapper
public interface InboundMapper extends BaseMapper<Inbound> {

    /**
     * 分页查询可入库的订单列表
     * 
     * @param page 分页对象
     * @param queryDTO 查询条件
     * @return 可入库的订单列表
     */
    IPage<QuotationItem> selectAvailableOrdersPage(Page<QuotationItem> page, @Param("query") InboundQueryDTO queryDTO);

    /**
     * 分页查询入库记录
     * 
     * @param page 分页对象
     * @param queryDTO 查询条件
     * @return 入库记录列表
     */
    IPage<Inbound> selectInboundRecordsPage(Page<Inbound> page, @Param("query") InboundQueryDTO queryDTO);

    /**
     * 获取最大厂内编号
     * 
     * @return 最大厂内编号
     */
    String selectMaxFactoryNo();

    /**
     * 根据报价明细ID查询已入库记录
     * 
     * @param quotationItemId 报价明细ID
     * @return 已入库记录列表
     */
    List<Inbound> selectByQuotationItemId(@Param("quotationItemId") Long quotationItemId);
} 